{T}

开篇:为什么要读 Vue.js 3 源码

阅读框架源码是提升工程能力的有效途径。Vue.js 3 相比 2.x 在架构上做了彻底重写,理解其内部实现,能够帮助我们:

  • 在调试复杂的渲染异常时,快速定位到框架层面的原因;
  • 在性能优化时,知道哪些写法会触发响应式追踪、哪些会被编译优化;
  • 在设计组件与抽象时,借鉴官方在 API 边界上的取舍。

本组文档以「组件渲染」为主线,按以下五个子组逐层展开:

  1. 响应式系统:reactive / ref / computed / effect 的底层实现,以及 Setup 初始化、生命周期、依赖注入;
  2. 组件渲染:从虚拟 DOM(vnode)到真实 DOM 的创建与更新(diff),以及插槽的内容分发;
  3. 组件机制:Props 初始化与更新、自定义指令、v-model 双向绑定,以及 Teleport / KeepAlive / Transition 等内置组件;
  4. 编译优化:模板解析为 AST、AST 转换、代码生成的全过程,以及静态提升等编译期优化;
  5. 路由与工程:Vue Router 前端路由的实现原理。

阅读建议:每篇都会给出相关源码在 packages 中的确切路径,建议边读边对照源码,遇到不理解的调用顺着调用栈继续追。示例均可在本地最小工程复现。